package com.jing.product.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jing.product.domain.po.ProductFullReduction;
import com.jing.product.domain.po.ProductLadder;
import com.jing.product.domain.po.ProductMemberPrice;
import com.jing.product.domain.po.ProductPromotion;
import com.jing.product.domain.vo.ProductCategoryVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Author：HaoYunde
 * @Package：com.jing.product.domain.dto
 * @Project：Jing
 * @name：ProductDTO
 * @Date：2024/5/30 9:14
 */
@Data
public class ProductDTO {

    @ApiModelProperty(value = "id")
    private Integer id;
    @ApiModelProperty(value = "品牌id")
    private Integer brandId;
    @ApiModelProperty(value = "品牌分类id")
    private Integer productCategoryId;
    //TODO
    @ApiModelProperty(value = "运费模版id")
    private Integer feightTemplateId;
    @ApiModelProperty(value = "品牌属性分类id")
    private Integer productAttributeCategoryId;
    @ApiModelProperty(value = "商品名称")
    private String name;
    @ApiModelProperty(value = "货号")
    private String productSn;
    @ApiModelProperty(value = "删除状态：0->未删除；1->已删除")
    private Integer deleteStatus;
    @ApiModelProperty(value = "上架状态：0->下架；1->上架")
    private Integer publishStatus;
    @ApiModelProperty(value = "新品状态:0->不是新品；1->新品")
    private Integer newStatus;
    @ApiModelProperty(value = "推荐状态；0->不推荐；1->推荐")
    private Integer recommandStatus;
    @ApiModelProperty(value = "审核状态：0->未审核；1->审核通过")
    private Integer verifyStatus;
    @ApiModelProperty(value = "排序")
    private Integer sort;
    @ApiModelProperty(value = "销量")
    private Integer sale;
    @ApiModelProperty(value = "价格")
    private Double price;
    @ApiModelProperty(value = "赠送的成长值")
    private Integer giftGrowth;
    @ApiModelProperty(value = "赠送的积分")
    private Integer giftPoint;
    @ApiModelProperty(value = "限制使用的积分数")
    private Integer usePointLimit;
    @ApiModelProperty(value = "副标题")
    private String subTitle;
    @ApiModelProperty(value = "商品描述")
    private String description;
    @ApiModelProperty(value = "市场价")
    private Double originalPrice;
    @ApiModelProperty(value = "库存")
    private Integer stock;
    @ApiModelProperty(value = "库存预警值")
    private Integer lowStock;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value = "商品重量，默认为克")
    private Double weight;
    @ApiModelProperty(value = "是否为预告商品：0->不是；1->是")
    private Integer previewStatus;
    @ApiModelProperty(value = "以逗号分割的产品服务：1->无忧退货；2->快速退款；3->免费包邮")
    private String serviceIds;
    @ApiModelProperty(value = "关键字")
    private String keywords;
    @ApiModelProperty(value = "备注")
    private String note;
    @ApiModelProperty(value = "详情标题")
    private String detailTitle;
    @ApiModelProperty(value = "详情描述")
    private String detailDesc;
    @ApiModelProperty(value = "产品详情网页内容")
    private String detailHtml;
    @ApiModelProperty(value = "移动端网页详情")
    private String detailMobileHtml;
    @ApiModelProperty(value = "活动限购数量")
    private String promotionPerLimit;
    @ApiModelProperty(value = "促销类型：0->没有促销使用原价;1->使用促销价；2->使用会员价；3->使用阶梯价格；4->使用满减价格；5->限时购")
    @NotNull
    private Integer promotionType;
    @ApiModelProperty(value = "商品阶梯价格表")
    private List<ProductLadder> productLadderList;
    @ApiModelProperty(value = "商品满减价格表")
    private List<ProductFullReduction> productFullReductionList;
    @ApiModelProperty(value = "会员等级表")
    private List<ProductMemberPrice> productMemberPriceList;
    @ApiModelProperty(value = "特惠促销")
    private ProductPromotion productPromotion;
    @ApiModelProperty(value = "sku列表")
    private List<Map<String,Object>> productSkuStock;
    @ApiModelProperty(value = "sku列表")
    private List<ProductSkuStockDTO> productSkuStockList;
    @ApiModelProperty(value = "商品参数")
    private List<ProductAttributeValueDTO> arrtList;
    @ApiModelProperty(value = "产品分类名称")
    private String productCategoryName;
    @ApiModelProperty(value = "品牌名称")
    private String brandName;
    @ApiModelProperty(value = "图片")
    private List<String> imgUrl;
    @ApiModelProperty(value = "图片")
    private String imgUrl2;



}
